iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0

K-means
原理:K-means通過將資料點分配到距離最近的質心(centroid)來進行聚類。質心由聚類內資料點的平均位置決定。
優點:
簡單且計算效率高,適合大規模數據。
直觀易懂,結果易於解釋。
缺點:
需要事先指定K值,即聚類數量。
對初始質心敏感,不同初始點可能導致不同結果。
只適用於線性分割的資料,對異常值和非球形分布的資料效果較差。

import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA

# 載入 iris 資料集
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 建立 KMeans 模型
kmeans = KMeans(n_clusters=3, random_state=42)
y_kmeans = kmeans.fit_predict(X)

# 使用 PCA 將資料降到2維
pca = PCA(2)
X_pca = pca.fit_transform(X)

# 繪製聚類結果
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y_kmeans, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red', marker='X')
plt.title("K-means Clustering of Iris Dataset")
plt.xlabel("PCA Feature 1")
plt.ylabel("PCA Feature 2")
plt.show()

上一篇
DAY14 為什麽會過擬合?14/30
下一篇
DAY16 層次聚類 16/30
系列文
機器學習與深度學習背後框架與過程論文與實作28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言